package com.ruibang.glass.sale.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruibang.glass.common.domain.camunda.BpmProcessInstanceCreate;
import com.ruibang.glass.sale.domain.req.GSaleContractManReq;
import com.ruibang.glass.sale.dto.GSaleContractManagementDTO;
import com.ruibang.glass.sale.dto.SelectDTO;
import com.ruibang.glass.sale.entity.GSaleContractManagement;
import com.ruibang.glass.sale.entity.GSaleContractProduct;
import com.teaming.cloud.framework2.common.model.ResultBody;

import javax.servlet.http.HttpServletResponse;
import java.util.List;


/**
 * @author mameng
 */
public interface GSaleContractManagementService extends IService<GSaleContractManagement> {
    IPage<GSaleContractManagement> getPage(GSaleContractManReq gSaleContractManReq);

//    void updateOrAdd(GSaleContractManagement gSaleContractManagement);

    void addGSaleContractManagement(GSaleContractManagement gSaleContractManagement);

    void updateAddGSaleContractManagement();

    void updateGSaleContractManagement(GSaleContractManagement gSaleContractManagement);

    void updateDelayGSaleContractManagement(GSaleContractManagement gSaleContractManagement);

    GSaleContractManagement getGSaleContractManagementById(String id);

    List<GSaleContractManagement> getGSaleContractManagementList();

    IPage<GSaleContractManagementDTO> getNewPage(GSaleContractManReq gSaleContractManReq);

    void export(GSaleContractManReq gSaleContractManReq, HttpServletResponse response);

    List<GSaleContractProduct> getContractsProductList(String id);

    /**
     * 发起立项审批
     * @param bpmProcessInstanceCreate
     */
    void approveProject(BpmProcessInstanceCreate bpmProcessInstanceCreate);


    String generateNextSerialNumber();




}
